package $2_1oo;

public class PackageFunction {

    public static void main(String[] args) {
        // 包 Package
        // 包可以是多层结构，用.隔开。例如：java.util。
        // 位于同一个包的类，可以访问包作用域的字段和方法。
        // 不用public、protected、private修饰的字段和方法就是包作用域。
        //
        // 在一个class中，我们总会引用其他的class。三种写法:
        // 第一种，直接写出完整类名。例如：mr.jun.Arrays arrays
        // 第二种写法是用import语句，导入import mr.jun.Arrays，然后写简单类名：
        //     在写import的时候，可以使用*，表示把这个包下面的所有class都导入进来（但不包括子包的class）
        // 第三种import static的语法，它可以导入可以导入一个类的静态字段和静态方法。import static很少使用。
        
        /**
         * Java编译器最终编译出的.class文件只使用完整类名，因此，在代码中，当编译器遇到一个class名称时：
         *  如果是完整类名，就直接根据完整类名查找这个class；
         *  如果是简单类名，按下面的顺序依次查找：
         *      查找当前package是否存在这个class；
         *      查找import的包是否包含这个class；
         *      查找java.lang包是否包含这个class。
         */
        
        // 编写class的时候，编译器会自动帮我们做两个import动作
        //  默认自动import当前package的其他class；
        //  默认自动import java.lang.*。
        
        // 包名推荐使用倒置的域名，例如org.apache。

    }

}
